//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.itheima.pinda.authority.dto.common;

import com.itheima.pinda.base.entity.SuperEntity.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

@ApiModel(
        value = "LoginLogUpdateDTO",
        description = "系统日志"
)
public class LoginLogUpdateDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键")
    @NotNull(
            message = "id不能为空",
            groups = {Update.class}
    )
    private Long id;
    @ApiModelProperty("操作IP")
    @Length(
            max = 50,
            message = "操作IP长度不能超过50"
    )
    private String requestIp;
    @ApiModelProperty("登录用户")
    @Length(
            max = 50,
            message = "登录用户长度不能超过50"
    )
    private String userName;
    @ApiModelProperty("登录描述")
    @Length(
            max = 255,
            message = "登录描述长度不能超过255"
    )
    private String description;
    @ApiModelProperty("开始时间")
    private LocalDateTime loginTime;
    @ApiModelProperty("浏览器请求头")
    private Long ua;
    @ApiModelProperty("登录地点")
    @Length(
            max = 50,
            message = "登录地点长度不能超过50"
    )
    private String location;

    public static LoginLogUpdateDTO.LoginLogUpdateDTOBuilder builder() {
        return new LoginLogUpdateDTO.LoginLogUpdateDTOBuilder();
    }

    public Long getId() {
        return this.id;
    }

    public String getRequestIp() {
        return this.requestIp;
    }

    public String getUserName() {
        return this.userName;
    }

    public String getDescription() {
        return this.description;
    }

    public LocalDateTime getLoginTime() {
        return this.loginTime;
    }

    public Long getUa() {
        return this.ua;
    }

    public String getLocation() {
        return this.location;
    }

    public LoginLogUpdateDTO setId(final Long id) {
        this.id = id;
        return this;
    }

    public LoginLogUpdateDTO setRequestIp(final String requestIp) {
        this.requestIp = requestIp;
        return this;
    }

    public LoginLogUpdateDTO setUserName(final String userName) {
        this.userName = userName;
        return this;
    }

    public LoginLogUpdateDTO setDescription(final String description) {
        this.description = description;
        return this;
    }

    public LoginLogUpdateDTO setLoginTime(final LocalDateTime loginTime) {
        this.loginTime = loginTime;
        return this;
    }

    public LoginLogUpdateDTO setUa(final Long ua) {
        this.ua = ua;
        return this;
    }

    public LoginLogUpdateDTO setLocation(final String location) {
        this.location = location;
        return this;
    }

    public LoginLogUpdateDTO() {
    }

    public LoginLogUpdateDTO(final Long id, final String requestIp, final String userName, final String description, final LocalDateTime loginTime, final Long ua, final String location) {
        this.id = id;
        this.requestIp = requestIp;
        this.userName = userName;
        this.description = description;
        this.loginTime = loginTime;
        this.ua = ua;
        this.location = location;
    }

    @Override
    public String toString() {
        return "LoginLogUpdateDTO(super=" + super.toString() + ", id=" + this.getId() + ", requestIp=" + this.getRequestIp() + ", userName=" + this.getUserName() + ", description=" + this.getDescription() + ", loginTime=" + this.getLoginTime() + ", ua=" + this.getUa() + ", location=" + this.getLocation() + ")";
    }

    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof LoginLogUpdateDTO)) {
            return false;
        } else {
            LoginLogUpdateDTO other = (LoginLogUpdateDTO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label95: {
                    Object this$id = this.getId();
                    Object other$id = other.getId();
                    if (this$id == null) {
                        if (other$id == null) {
                            break label95;
                        }
                    } else if (this$id.equals(other$id)) {
                        break label95;
                    }

                    return false;
                }

                Object this$requestIp = this.getRequestIp();
                Object other$requestIp = other.getRequestIp();
                if (this$requestIp == null) {
                    if (other$requestIp != null) {
                        return false;
                    }
                } else if (!this$requestIp.equals(other$requestIp)) {
                    return false;
                }

                Object this$userName = this.getUserName();
                Object other$userName = other.getUserName();
                if (this$userName == null) {
                    if (other$userName != null) {
                        return false;
                    }
                } else if (!this$userName.equals(other$userName)) {
                    return false;
                }

                label74: {
                    Object this$description = this.getDescription();
                    Object other$description = other.getDescription();
                    if (this$description == null) {
                        if (other$description == null) {
                            break label74;
                        }
                    } else if (this$description.equals(other$description)) {
                        break label74;
                    }

                    return false;
                }

                label67: {
                    Object this$loginTime = this.getLoginTime();
                    Object other$loginTime = other.getLoginTime();
                    if (this$loginTime == null) {
                        if (other$loginTime == null) {
                            break label67;
                        }
                    } else if (this$loginTime.equals(other$loginTime)) {
                        break label67;
                    }

                    return false;
                }

                Object this$ua = this.getUa();
                Object other$ua = other.getUa();
                if (this$ua == null) {
                    if (other$ua != null) {
                        return false;
                    }
                } else if (!this$ua.equals(other$ua)) {
                    return false;
                }

                Object this$location = this.getLocation();
                Object other$location = other.getLocation();
                if (this$location == null) {
                    if (other$location != null) {
                        return false;
                    }
                } else if (!this$location.equals(other$location)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof LoginLogUpdateDTO;
    }

    @Override
    public int hashCode() {
        /*int PRIME = true;*/
        int result = 1;
        Object $id = this.getId();
        result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $requestIp = this.getRequestIp();
        result = result * 59 + ($requestIp == null ? 43 : $requestIp.hashCode());
        Object $userName = this.getUserName();
        result = result * 59 + ($userName == null ? 43 : $userName.hashCode());
        Object $description = this.getDescription();
        result = result * 59 + ($description == null ? 43 : $description.hashCode());
        Object $loginTime = this.getLoginTime();
        result = result * 59 + ($loginTime == null ? 43 : $loginTime.hashCode());
        Object $ua = this.getUa();
        result = result * 59 + ($ua == null ? 43 : $ua.hashCode());
        Object $location = this.getLocation();
        result = result * 59 + ($location == null ? 43 : $location.hashCode());
        return result;
    }

    public static class LoginLogUpdateDTOBuilder {
        private Long id;
        private String requestIp;
        private String userName;
        private String description;
        private LocalDateTime loginTime;
        private Long ua;
        private String location;

        LoginLogUpdateDTOBuilder() {
        }

        public LoginLogUpdateDTO.LoginLogUpdateDTOBuilder id(final Long id) {
            this.id = id;
            return this;
        }

        public LoginLogUpdateDTO.LoginLogUpdateDTOBuilder requestIp(final String requestIp) {
            this.requestIp = requestIp;
            return this;
        }

        public LoginLogUpdateDTO.LoginLogUpdateDTOBuilder userName(final String userName) {
            this.userName = userName;
            return this;
        }

        public LoginLogUpdateDTO.LoginLogUpdateDTOBuilder description(final String description) {
            this.description = description;
            return this;
        }

        public LoginLogUpdateDTO.LoginLogUpdateDTOBuilder loginTime(final LocalDateTime loginTime) {
            this.loginTime = loginTime;
            return this;
        }

        public LoginLogUpdateDTO.LoginLogUpdateDTOBuilder ua(final Long ua) {
            this.ua = ua;
            return this;
        }

        public LoginLogUpdateDTO.LoginLogUpdateDTOBuilder location(final String location) {
            this.location = location;
            return this;
        }

        public LoginLogUpdateDTO build() {
            return new LoginLogUpdateDTO(this.id, this.requestIp, this.userName, this.description, this.loginTime, this.ua, this.location);
        }

        @Override
        public String toString() {
            return "LoginLogUpdateDTO.LoginLogUpdateDTOBuilder(id=" + this.id + ", requestIp=" + this.requestIp + ", userName=" + this.userName + ", description=" + this.description + ", loginTime=" + this.loginTime + ", ua=" + this.ua + ", location=" + this.location + ")";
        }
    }
}
